<?php

# -- DÉBUT NOTE DE LICENCE -------------------------------------
#
# Ce fichier fait partie de Clicpage.
#
# Copyright (c) 2010 Francois (www.clicpage.net)
# Distribué selon les termes de la licence GPL version 2.0.
# Consultez le fichier LICENCE ou
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
#
# -- FIN NOTE DE LICENCE ---------------------------------------

class cpModuleModifierMedia extends cpModuleAdmin
{
	
	
	
	
	
	protected $media;
	protected $peutEditer = false;
	
	
	
	
	
	/// @name Initialisation
	//@{
	

	public function __construct($core)
	{
		parent::__construct($core);   
		
		if(empty($_GET['media_id']) || !is_numeric($_GET['media_id'])) {
			http::redirect('index.php?module=medias');
		}
		
		$this->media = $this->core->site->getMedias(array('media_id' => (integer) $_GET['media_id']), CP_GET_STATIC);
		
		if($this->media->isEmpty()) {
			http::redirect('index.php?module=medias');
		}
		
		$this->peutEditer = false;
		if(	$this->core->auth->verifierPermission('medias') &&
			( $this->media->utilisateur_id == $this->core->auth->getUtilisateurID() ||
			  $this->core->auth->verifierPermission('tousMedias')  )
		) {
			$this->peutEditer = true;
		}
	
		$this->setTitreModule(__('Détails du média'));
		
		if($this->peutEditer) {
			$this->ajouterBoutonAction(__('Enregistrer'), '#', 'boutonAction_enregistrer');
		}
		
		# Lien remonter		
		if($_GET['ref'] == '1' && !empty($_SERVER['HTTP_REFERER'])) {
			
			$ref = parse_url($_SERVER['HTTP_REFERER']);
			
			$curHost = http::getHost();
			$refHost = $ref['scheme'].'://'.$ref['host'];
			
			$curPath = substr($_SERVER['REQUEST_URI'], 0, strpos($_SERVER['REQUEST_URI'], '?'));
			$refPath = $ref['path'];

			if($curHost == $refHost && $curPath == $refPath) {
				$_SESSION['prev']['medias'][$this->media->media_id] = substr($ref['query'], strpos($ref['query'], '=')+1);
			}
		
		}
		if(!empty($_SESSION['prev']['medias'][$this->media->media_id])) {
			$this->setPrev($_SESSION['prev']['medias'][$this->media->media_id], __('Médias'));
		} else {
			$this->setPrev('medias', __('Médias'));
		}
		
		# Actions autorisées
		$this->setActionsAutorisees('modifierMedia');
		
		# CSS et Javascript
		$this->setCSS('modifierMedia');
		$this->setJavascript('modifierMedia');
		
	}
	//@}
    
	
	

	
	/// @name Formulaires
	//@{
	
	
	public function action_modifierMedia()
	{			
		if(!$this->peutEditer) {
			throw new cpErreur(__('Vous ne pouvez pas éditer ce média.'), 'medias', 201);
		}
		
		if(!strtotime($_POST['media_date_creation'])) {
			throw new cpErreur(__('Date invalide'), 'media_date_creation', 104);
		}
		
		$cur = $this->core->con->openCursor($this->core->prefix.'medias');
		$cur->media_titre			= $_POST['media_titre'];
		$cur->media_description		= $_POST['media_description'];
		$cur->media_fichier			= $_POST['media_fichier'];
		$cur->media_dossier			= $_POST['media_dossier'];
		$cur->media_date_creation	= dt::dt2str('%Y-%m-%d %H:%M:%S', $_POST['media_date_creation']);
				
		$this->media->enregistrer($cur);
		$this->messageOK(__('Le média a été mis à jour avec succès.'));
		
		$_SESSION['prev']['medias'][$this->media->media_id] = 'medias&dossier='.$this->media->media_dossier;
		$this->setPrev($_SESSION['prev']['medias'][$this->media->media_id], __('Médias'));
		
	}
	//@} 
    
	

	
	
	/// @name Interface du module
	//@{
	
	
	public function interfaceModule()
	{

		if($this->erreursFormulairePresentes())
		{
			$media_titre			= html::escapeHTML($_POST['media_titre']);
			$media_description		= html::escapeHTML($_POST['media_description']);
			$media_date_creation	= html::escapeHTML(dt::dt2str('%Y-%m-%d %H:%M', $_POST['media_date_creation']));
			$media_fichier			= html::escapeHTML($_POST['media_fichier']);
			$media_dossier			= $_POST['media_dossier'];
		}
		else
		{
			$media_titre			= html::escapeHTML($this->media->media_titre);
			$media_description		= html::escapeHTML($this->media->media_description);
			$media_date_creation	= html::escapeHTML(dt::dt2str('%Y-%m-%d %H:%M', $this->media->media_date_creation));
			$media_fichier			= html::escapeHTML($this->media->media_fichier);
			$media_dossier			= $this->media->media_dossier;
		}
		
		$html =
		$this->afficherMessages().
		'<fieldset id="media_apercu">'.
			'<legend>'.__('Aperçu').'</legend>'.
			$this->media->apercu('s').
		'</fieldset>'.
		'<form id="formulaireModifierMedia" action="index.php?module=modifierMedia&media_id='.(integer) $this->media->media_id.'" method="post">'.
		$this->core->nonceHTML('modifierMedia').
		form::hidden('action', 'modifierMedia').
		form::hidden('media_id', (integer) $this->media->media_id).
		'<fieldset>'.
			'<legend>'.__('Changer les propriétés du média').'</legend>'.
			'<p>'.
				'<label for="media_titre">'.__('Titre').'</label>'.
				$this->field('media_titre', 40, 300, $media_titre).
			'</p>'.
			'<p>'.
				'<label for="media_description">'.__('Description').'</label>'.
				$this->textarea('media_description', 50, 5, $media_description).
			'</p>'.
			'<p>'.
				'<label for="media_date_creation">'.__('Date').'</label>'.
				$this->field('media_date_creation', 40, 70, $media_date_creation).
			'</p>'.
		'</fieldset>'.
		'<fieldset>'.
			'<legend>'.__('Détails du fichier').'</legend>'.
			'<p>'.
				'<label for="media_fichier">'.__('Nom du fichier').'</label>'.
				$this->field('media_fichier', 40, 300, $media_fichier).
				'<span class="aideFormulaire">'.__('Si vous changez le nom de fichier d\'un média déjà présent dans une page, il se peut qu\'il ne s\'affiche plus correctement.').'</span>'.
			'</p>'.
			'<p>'.
				'<label for="media_dossier">'.__('Dossier parent').'</label>'.
				$this->combo('media_dossier', $this->core->site->getComboDossiersMedias(), $media_dossier).
				'<span class="aideFormulaire">'.__('Si vous déplacez un média déjà présent dans une page, il se peut qu\'il ne s\'affiche plus correctement.').'</span>'.
			'</p>'.
			'<p>'.
				'<label for="media_type">'.__('Type').'</label>'.
				html::escapeHTML($this->media->media_type).
			'</p>'.
		'</fieldset>';
		
		if($this->peutEditer)
		{
			$html.=
			'<p>'.
				'<input type="submit" value="'.__('Enregistrer').'" />'.
			'</p>';
		}
		
		$html.=
		'</form>';
		
		return $html;
			
	}
	//@}
	
	
}

?>